home *** CD-ROM | disk | FTP | other *** search
-
- (*
- This TI demonstrates how to make your Delphi 2.0
- application "sing" by loading and playing a wave file
- four different ways:
-
- 1) Use the sndPlaySound() function to directly
- play a wave file.
-
- 2) Read the wave file into memory, then use the
- sndPlaySound() to play the wave file
-
- 3) Use sndPlaySound to directly play a wave
- file thats embedded in a resource file attached
- to your application.
-
- 4) Read a wave file thats embedded in a resource
- file attached to your application into memory,
- then use the sndPlaySound() to play the wave file.
-
- To build the project you will need to:
-
- 1) Create a wave file called 'hello.wav'
- in the project's directory.
-
- 2) Create a text file called 'snddata.rc'
- in the project's directory.
-
- 3) Add the following line to the file 'snddata.rc':
- HELLO WAVE hello.wav
-
- 4) At a dos prompt, go to your project directory
- and compile the .rc file using the Borland Resource
- compiler (brcc32.exe) by typing the path to brcc32.exe
- and giving 'snddata.rc' as a parameter.
-
- Example:
-
- bin\brcc32 snddata.rc
-
- This will create the file 'snddata.res' that
- Delphi will link with your application's .exe
- file.
-
- Final Note: Keep on Jamm'n!
-
- *)
-
- unit PlaySnd1;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- StdCtrls;
-
- type
- TForm1 = class(TForm)
- PlaySndFromFile: TButton;
- PlaySndFromMemory: TButton;
- PlaySndbyLoadRes: TButton;
- PlaySndFromRes: TButton;
- procedure PlaySndFromFileClick(Sender: TObject);
- procedure PlaySndFromMemoryClick(Sender: TObject);
- procedure PlaySndFromResClick(Sender: TObject);
- procedure PlaySndbyLoadResClick(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
-
- var
- Form1: TForm1;
-
- implementation
-
- {$R *.DFM}
-
- {$R snddata.res}
-
- uses MMSystem;
-
- procedure TForm1.PlaySndFromFileClick(Sender: TObject);
- begin
- sndPlaySound('hello.wav',
- SND_FILENAME or SND_SYNC);
- end;
-
- procedure TForm1.PlaySndFromMemoryClick(Sender: TObject);
- var
- f: file;
- p: pointer;
- fs: integer;
- begin
- AssignFile(f, 'hello.wav');
- Reset(f,1);
- fs := FileSize(f);
- GetMem(p, fs);
- BlockRead(f, p^, fs);
- CloseFile(f);
- sndPlaySound(p,
- SND_MEMORY or SND_SYNC);
- FreeMem(p, fs);
- end;
-
- procedure TForm1.PlaySndFromResClick(Sender: TObject);
- begin
- PlaySound('HELLO',
- hInstance,
- SND_RESOURCE or SND_SYNC);
- end;
-
- procedure TForm1.PlaySndbyLoadResClick(Sender: TObject);
- var
- h: THandle;
- p: pointer;
- begin
- h := FindResource(hInstance,
- 'HELLO',
- 'WAVE');
- h := LoadResource(hInstance, h);
- p := LockResource(h);
- sndPlaySound(p,
- SND_MEMORY or SND_SYNC);
- UnLockResource(h);
- FreeResource(h);
- end;
-
-
- end.